# 自动重组工具栏
# 版本：1.0.0
# 作者：詹广权
# 版权所有：http://www.cdsjcc.cn/xgj
# 说明：为自动重组功能创建工具栏

module AutoReGroup
  module Toolbar
    
    # 工具栏实例
    @@toolbar = nil
    
    # 创建工具栏
    def self.create_toolbar
      return @@toolbar if @@toolbar
      
      # 创建工具栏
      @@toolbar = UI::Toolbar.new("自动重组工具栏")
      
      # 创建自动重组命令
      cmd = UI::Command.new("自动重组") {
        # 调用主插件的自动重组功能
        AutoReGroup::Plugin.single_ungroup_regroup_with_progress
      }
      
      # 设置图标路径
      icon_path = File.join(__dir__, 'zdcz.png')
      
      # 检查图标文件是否存在
      if File.exist?(icon_path)
        cmd.small_icon = icon_path
        cmd.large_icon = icon_path
      else
        puts "警告：找不到图标文件 #{icon_path}"
      end
      
      # 设置工具提示和状态栏文本
      cmd.tooltip = "自动重组"
      cmd.status_bar_text = "每个组都解组到没有组时再打一个组，一键自动化操作"
      cmd.menu_text = "自动重组"
      
      # 添加命令到工具栏
      @@toolbar.add_item(cmd)
      
      # 根据上次状态显示工具栏
      if @@toolbar.get_last_state != -1  # -1表示从未显示过
        @@toolbar.restore
      else
        @@toolbar.show
      end
      
      # 工具栏创建完成
      @@toolbar
    end
    
    # 显示工具栏
    def self.show_toolbar
      create_toolbar unless @@toolbar
      @@toolbar.show if @@toolbar
    end
    
    # 隐藏工具栏
    def self.hide_toolbar
      @@toolbar.hide if @@toolbar
    end
    
    # 检查工具栏是否可见
    def self.toolbar_visible?
      return false unless @@toolbar
      @@toolbar.visible?
    end
    
    # 获取工具栏实例
    def self.toolbar
      @@toolbar
    end
    
    # 初始化工具栏（在插件加载时调用）
    unless file_loaded?(__FILE__)
      # 延迟创建工具栏，确保主插件已加载
      UI.start_timer(0.1, false) {
        create_toolbar
      }
      file_loaded(__FILE__)
    end
    
  end
end

# 添加菜单项来控制工具栏显示/隐藏
unless file_loaded?("zdcz_toolbar_menu")
  # 在视图菜单中添加工具栏控制项
  view_menu = UI.menu("View")
  toolbars_menu = view_menu.add_submenu("工具栏")
  
  # 添加显示/隐藏工具栏的菜单项
  toolbars_menu.add_item("自动重组工具栏") {
    if AutoReGroup::Toolbar.toolbar_visible?
      AutoReGroup::Toolbar.hide_toolbar
    else
      AutoReGroup::Toolbar.show_toolbar
    end
  }
  
  file_loaded("zdcz_toolbar_menu")
end